package com.skyhigh.web.webservice.domain;

// Generated 26/03/2012 11:56:15 PM by Hibernate Tools 3.4.0.CR1

import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.TableGenerator;
import javax.persistence.UniqueConstraint;

import org.hibernate.annotations.Proxy;

/**
 * TipoMovimiento generated by hbm2java
 */
@Entity
@Table(name = "tipoMovimiento", catalog = "proyecto_metodologia", uniqueConstraints = @UniqueConstraint(columnNames = "nombre"))
@TableGenerator(name="generatorName", 
table="secuencia",  
pkColumnName="codigo",  
pkColumnValue = "TipoMovimiento.id",
valueColumnName="valor",  
allocationSize=100)
@Proxy( lazy=false )
public class TipoMovimiento implements java.io.Serializable {

	private int idTipoMovimiento;
	private String nombre;
	private String descripcion;
	private Set<Contenedor> contenedors = new HashSet<Contenedor>(0);
	private Set<Carga> cargas = new HashSet<Carga>(0);

	public TipoMovimiento() {
	}

	public TipoMovimiento(int idTipoMovimiento, String nombre,
			String descripcion) {
		this.idTipoMovimiento = idTipoMovimiento;
		this.nombre = nombre;
		this.descripcion = descripcion;
	}

	public TipoMovimiento(int idTipoMovimiento, String nombre,
			String descripcion, Set<Contenedor> contenedors, Set<Carga> cargas) {
		this.idTipoMovimiento = idTipoMovimiento;
		this.nombre = nombre;
		this.descripcion = descripcion;
		this.contenedors = contenedors;
		this.cargas = cargas;
	}

	@Id
	@Column(name = "idTipoMovimiento", unique = true, nullable = false)
	@GeneratedValue(strategy=GenerationType.TABLE, generator="generatorName")
	public int getIdTipoMovimiento() {
		return this.idTipoMovimiento;
	}

	public void setIdTipoMovimiento(int idTipoMovimiento) {
		this.idTipoMovimiento = idTipoMovimiento;
	}

	@Column(name = "nombre", unique = true, nullable = false)
	public String getNombre() {
		return this.nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	@Column(name = "descripcion", nullable = false)
	public String getDescripcion() {
		return this.descripcion;
	}

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "tipoMovimiento")
	public Set<Contenedor> getContenedors() {
		return this.contenedors;
	}

	public void setContenedors(Set<Contenedor> contenedors) {
		this.contenedors = contenedors;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "tipoMovimiento")
	public Set<Carga> getCargas() {
		return this.cargas;
	}

	public void setCargas(Set<Carga> cargas) {
		this.cargas = cargas;
	}

}
